package com.example.aiquestions.service;

import com.example.aiquestions.model.dto.ChatRequest;
import com.example.aiquestions.model.dto.ChatResponse;

public interface AIService {

    
    /**
     * 发送聊天请求
     * @param request 聊天请求参数
     * @return 聊天响应
     */
    ChatResponse chat(ChatRequest request);

    /***
     *
     * @return
     */
    ChatResponse generateQuestion(String userPrompt);

    ChatResponse generateGraphData(String userPrompt);

    /**
     * 使用默认参数发送消息
     * @param message 用户消息
     * @return 聊天响应
     */
    ChatResponse sendMessage(String message);

    /**
     * 流式生成问题
     * @param prompt 提示
     * @param handler 流式响应处理器
     */
    void generateQuestionStream(String prompt, StreamResponseHandler handler);

    /**
     * 获取服务提供商名称
     * @return 服务提供商名称
     */
    String getProvider();

    /**
     * 流式生成知识图谱数据
     */
    default void generateGraphDataStream(String prompt, StreamResponseHandler handler) {
        throw new UnsupportedOperationException("This AI provider does not support streaming graph data generation");
    }

}

